"""
所有的夹具一般都是维护在：conftest.py文件里面

在这里写入的夹具内容，其他文件无需导入方法，可以直接拿来引用
"""
import pytest
@pytest.fixture(scope='function',autouse=False,name='lo')
def logins():
    print("登录")
    yield "logins"      # 生成器
    print("退出登录")


"""
fixture有三个比较重要的参数
【1】 scope  定义夹具自动识别的层级
function；函数级别，也是默认级别
class：类级别
module：模块级别,按照每个py文件执行一次（要符合测试文件规范）
session：会话级别，全部的测试用例只会执行一次

【2】autouse  自动开关，自动寻找
True：打开自动寻找，按照scope参数进行自动执行
False：关闭自动寻找；默认也是False级别

【3】name   为这个夹具重命名
"""
def test_1():
    print("我是a")
"""
当scope为class级别，那么我这个方法级别的测试用例也会执行一次
为什么？
因为它把单独的function级别用例也当成了class来执行一次（底层这么设计的）
"""

# 那么如果我本身就一个类呢？
# scope也是class
class TestDemo:
    def test_a(self):
        print("我是a")

    def test_b(self):
        print("我是b")

    def test_c(self):
        print("我是c")
"""
如果scope级别是：class
它只会执行一次，按照类级别执行一次
"""
from selenium import webdriver
from time import sleep
@pytest.fixture(scope='function',autouse=False,name='driver')
def browser():
    driver = webdriver.Chrome()
    driver.get('https://www.baidu.com/')
    driver.implicitly_wait(15)
    driver.maximize_window()
    yield driver
    sleep(3)
    driver.quit()




















